package pe.gob.onpe.ejb;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Parametro entity.
 * 
 * @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "PARAMETRO", schema = "SVENP", uniqueConstraints = {})
public class Parametro implements java.io.Serializable {
	
	// Fields
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 927114868655997531L;
	private Long	parametroId;
	private String	nombre;
	private String	valorminimo;
	private String	valormaximo;
	private String	tipoParametro;
	private Set<ParametroCedula> parametroCedulas = new HashSet<ParametroCedula>(0);
	private Set<ParametroCedulaTipoEleccion> parametroCedulaTipoEleccions = new HashSet<ParametroCedulaTipoEleccion>(0);

	// Constructors

	/** default constructor */
	public Parametro() {
	}

	/** minimal constructor */
	public Parametro(Long parametroId, String nombre,String tipoParametro) {
		this.parametroId = parametroId;
		this.nombre = nombre;
		this.tipoParametro = tipoParametro;
	}

	/** full constructor */
	public Parametro(Long parametroId, String nombre, String valorminimo,
			String valormaximo, Set<ParametroCedula> parametroCedulas,
			Set<ParametroCedulaTipoEleccion> parametroCedulaTipoEleccions,
			String tipoParametro) {
		this.parametroId = parametroId;
		this.nombre = nombre;
		this.valorminimo = valorminimo;
		this.valormaximo = valormaximo;
		this.parametroCedulas = parametroCedulas;
		this.parametroCedulaTipoEleccions = parametroCedulaTipoEleccions;
		this.tipoParametro = tipoParametro;
	}

	// Property accessors
	@Id
	@Column(name = "PARAMETRO_ID", unique = true, nullable = false, insertable = true, updatable = true, precision = 10, scale = 0)
	public Long getParametroId() {
		return this.parametroId;
	}

	public void setParametroId(Long parametroId) {
		this.parametroId = parametroId;
	}
	
	@Column(name = "TIPO_PARAMETRO")
	public String getTipoParametro() {
		return tipoParametro;
	}

	public void setTipoParametro(String tipoParametro) {
		this.tipoParametro = tipoParametro;
	}

	@Column(name = "NOMBRE", unique = false, nullable = false, insertable = true, updatable = true)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "VALORMINIMO", unique = false, nullable = true, insertable = true, updatable = true)
	public String getValorminimo() {
		return this.valorminimo;
	}

	public void setValorminimo(String valorminimo) {
		this.valorminimo = valorminimo;
	}

	@Column(name = "VALORMAXIMO", unique = false, nullable = true, insertable = true, updatable = true)
	public String getValormaximo() {
		return this.valormaximo;
	}

	public void setValormaximo(String valormaximo) {
		this.valormaximo = valormaximo;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "parametro")
	public Set<ParametroCedula> getParametroCedulas() {
		return this.parametroCedulas;
	}

	public void setParametroCedulas(Set<ParametroCedula> parametroCedulas) {
		this.parametroCedulas = parametroCedulas;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "parametro")
	public Set<ParametroCedulaTipoEleccion> getParametroCedulaTipoEleccions() {
		return this.parametroCedulaTipoEleccions;
	}

	public void setParametroCedulaTipoEleccions(
			Set<ParametroCedulaTipoEleccion> parametroCedulaTipoEleccions) {
		this.parametroCedulaTipoEleccions = parametroCedulaTipoEleccions;
	}

}